// 云函数入口文件
const cloud = require('wx-server-sdk')

cloud.init({ env: cloud.DYNAMIC_CURRENT_ENV })
const db = cloud.database()

// 云函数入口函数
exports.main = async (event, context) => {
  try {
    const { checkId } = event
    
    if (!checkId) {
      return {
        success: false,
        message: '缺少检查记录ID'
      }
    }
    
    // 1. 获取检查记录
    const checkResult = await db.collection('checks').doc(checkId).get()
    const check = checkResult.data
    
    if (!check) {
      return {
        success: false,
        message: '找不到检查记录'
      }
    }
    
    // 2. 更新检查记录状态为已完成
    await db.collection('checks').doc(checkId).update({
      data: {
        status: '已完成',
        updateTime: new Date()
      }
    })
    
    // 3. 更新宿舍当前分数
    await db.collection('dorms').where({
      building: check.building,
      roomNo: check.roomNo
    }).update({
      data: {
        currentScore: check.totalScore,
        updateTime: new Date(),
        // 如果分数≥90，添加优秀宿舍勋章
        medals: check.totalScore >= 90 ? db.command.addToSet('优秀宿舍') : db.command.set([])
      }
    })
    
    // 4. 如果分数低于60，调用createTask云函数创建整改任务
    if (check.totalScore < 60) {
      const createTaskResult = await cloud.callFunction({
        name: 'createTask',
        data: { checkId }
      })
      
      return {
        success: true,
        message: '检查完成，已创建整改任务',
        createTaskResult: createTaskResult.result
      }
    }
    
    return {
      success: true,
      message: '检查完成'
    }
  } catch (error) {
    console.error('完成检查失败', error)
    return {
      success: false,
      error
    }
  }
} 